﻿@model PcaWeb.Models.LogOnEmpresaModel

@{
    var X = Html.X();   
}

@(
 X.Window()
        .Closable(false)
        .CloseAction(CloseAction.Destroy)
        .Resizable(false)
        .Icon(Icon.Lock)
        .Title("Seleccionar oficina")
        .Layout(LayoutType.Fit)
        .Width(450)
        .Modal(false)
        .BodyPadding(5)
        .Constrain(true)
        .Listeners(l => {
            l.AfterRender.Handler = "Ext.Msg.hide();";
        })
        .Items(
            X.FormPanel()
                .Layout(LayoutType.Form)
                .Border(false)
                .BodyStyle("background-color:transparent;")
                .FieldDefaults(fieldDefaults => { fieldDefaults.LabelWidth = 120; })
                .Items(
                    X.TextFieldFor(m => m.UserName).Value(ViewData["UserName"]).ReadOnly(true),
                    X.TextFieldFor(m => m.Password).Value(ViewData["Password"]),
                    X.ComboBoxFor(m => m.Empresa)
                        .Editable(false)
                        .QueryMode(DataLoadMode.Local)
                        .Listeners(l =>
                            l.Select.Handler = "App.Oficina.clearValue(); App.Oficina.getStore().load()"
                        )
                        .Items(l => {
                            List<PcaCore.BOL.Pca.oVwUsuarioEmpresa> oficinasAsignadas = (List<PcaCore.BOL.Pca.oVwUsuarioEmpresa>)ViewData["oficinasAsignadas"];
                            foreach (PcaCore.BOL.Pca.oVwUsuarioEmpresa item in oficinasAsignadas)
                            {
                                l.Add(new ListItem(item.empresa, item.empresa_id)); 
                            }
                        }),
                    X.ComboBoxFor(m => m.Oficina)
                        .QueryMode(DataLoadMode.Local)
                        .ForceSelection(true)
                        .DisplayField("oficina")
                        .ValueField("oficina_id")
                        .EmptyText("Cargando...")
                        .ValueNotFoundText("Cargando...")
                        .Store(
                            X.StoreFor(typeof(PcaCore.BOL.Pca.oVwUsuarioEmpresa))
                                .AutoLoad(false)
                                .Proxy(
                                    X.AjaxProxy()
                                        .Url(Url.Action("GetListOficinas"))
                                        .Reader(X.JsonReader().RootProperty("data"))
                                )
                                .Parameters(p =>
                                {
                                    p.Add(new StoreParameter("empresaId", "App.Empresa.getValue()", ParameterMode.Raw));
                                    p.Add(new StoreParameter("userName", "App.UserName.getValue()", ParameterMode.Raw));
                                })
                        ),
                    X.Hidden().ID("ReturnUrl").Value(ViewData["returnUrl"])
                )
        )
        .Buttons(
            X.Button()
                .ID("btnSumit")
                .Text("Login")
                .Icon(Icon.Accept)
                .DirectEvents(de =>
                {
                    de.Click.Url = Url.Action("LoginEmpresa");
                    de.Click.Timeout = 60000;
                    de.Click.FormID = "#(return this.up('window').down('form');)";
                    de.Click.CleanRequest = true;
                    de.Click.Method = HttpMethod.POST;
                    de.Click.Before = "fnValidateForm";
                    de.Click.Success = "this.up('window').close();";
                    de.Click.Failure = "Ext.Msg.show({title:'Login Error', msg: result.msg, buttons: Ext.Msg.OK,icon: Ext.MessageBox.ERROR });";
                    de.Click.EventMask.MinDelay = 250;
                }))
)